package com.gitee.wsl.doc.xml

 sealed interface XmlEntity {
     sealed interface ContentEntity : XmlEntity

     data class Document(
         val root: Element
    ) : XmlEntity

     data class Value(
         val value: String
    ) : ContentEntity

     data class Element(
         val name: String,
         val namespace: String?,
         val attributes: List<Attribute> = emptyList(),
         val content: List<ContentEntity> = emptyList(),
    ) : ContentEntity

     data class Attribute(
         val name: String,
         val value: String,
         val prefix: String? = null
    ) : XmlEntity

     data class Comment(
        val value: String,
    ) : ContentEntity
}